package com.k8sops.backend.mapper;

import com.k8sops.backend.entity.Menu;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * u83dcu5355Mapperu63a5u53e3
 */
@Mapper
public interface MenuMapper {

    /**
     * u521bu5efau83dcu5355
     * @param menu u83dcu5355u4fe1u606f
     * @return u5f71u54cdu884cu6570
     */
    int insert(Menu menu);

    /**
     * u66f4u65b0u83dcu5355
     * @param menu u83dcu5355u4fe1u606f
     * @return u5f71u54cdu884cu6570
     */
    int update(Menu menu);

    /**
     * u6839u636eIDu5220u9664u83dcu5355
     * @param id u83dcu5355ID
     * @return u5f71u54cdu884cu6570
     */
    int deleteById(@Param("id") Long id);

    /**
     * u6839u636eIDu67e5u8be2u83dcu5355
     * @param id u83dcu5355ID
     * @return u83dcu5355u4fe1u606f
     */
    Menu selectById(@Param("id") Long id);

    /**
     * u67e5u8be2u6240u6709u83dcu5355
     * @return u83dcu5355u5217u8868
     */
    List<Menu> selectAll();

    /**
     * u6839u636eu7236u83dcu5355IDu67e5u8be2u5b50u83dcu5355
     * @param parentMenuId u7236u83dcu5355ID
     * @return u5b50u83dcu5355u5217u8868
     */
    List<Menu> selectByParentId(@Param("parentMenuId") Long parentMenuId);

    /**
     * u6839u636eu89d2u8272IDu67e5u8be2u83dcu5355u5217u8868
     * @param roleId u89d2u8272ID
     * @return u83dcu5355u5217u8868
     */
    List<Menu> selectMenusByRoleId(@Param("roleId") Long roleId);
}
